<?php

namespace api\components;

use Exception;
use SplFileObject;
use Yii;
use yii\base\Component;
use yii\db\QueryTrait;
use yii\helpers\ArrayHelper;

class Common extends Component
{
    public static function constructPage($query, $params)
    {
        if (isset($params['page']) && isset($params['pageSize'])) {
            $page = intval($params['page']);
            $pageSize = intval($params['pageSize']);
            $offset = ($page - 1) * $pageSize;
            $limit = $pageSize;
            $query->offset($offset)->limit($limit);
            return $query;
        }
        if (isset($params['page']) && isset($params['per-page'])) {
            $page = intval($params['page']);
            $pageSize = intval($params['per-page']);
            $offset = ($page - 1) * $pageSize;
            $limit = $pageSize;
            $query->offset($offset)->limit($limit);
            return $query;
        }

        return  $query->offset(0)->limit(10);
    }

//    public static function constructPage(&$query,$params)
//    {
//        if (!isset($params['page']) || !isset($params['pageSize'])) {
//            $params['page'] = 1;
//            $params['pageSize'] = 10;
//        }
//
//        if (isset($params['page']) && isset($params['pageSize'])) {
//            $page = intval($params['page']);
//            $pageSize = intval($params['pageSize']);
//            $offset = ($page - 1) * $pageSize;
//            $limit = $pageSize;
//            $query->offset($offset)->limit($limit);
//        }
//        if (isset($params['page']) && isset($params['per-page'])) {
//            $page = intval($params['page']);
//           print_r($params);exit;
//            $pageSize = intval($params['per-page']);
//            $offset = ($page - 1) * $pageSize;
//            echo $offset;exit;
//            $limit = $pageSize;
//            $query->offset($offset)->limit($limit);
//            print_r($query);exit;
//        }
//        return $query;
//    }

    public static function constructSort($query,$params)
    {
        if (isset($params['sort']) && isset($params['sortType'])) {
            $sortType = $params['sortType'] == 'DESC' ? SORT_DESC : SORT_ASC;
            $query->orderBy([$params['sort'] => $sortType]);
        }
        return $query;
    }
}
